package com.youlai.system.service;

import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.system.model.dto.CaptchaResult;
import com.youlai.system.model.dto.LoginResult;
import com.youlai.system.model.entity.CarAuth;
import com.youlai.system.model.entity.CarUser;
import com.youlai.system.model.form.AuthForm;
import com.youlai.system.model.query.CarAuthPageQuery;
import com.youlai.system.model.vo.CarAuthExportVO;
import com.youlai.system.model.vo.CarAuthImportVO;
import com.youlai.system.model.vo.CarAuthPageVO;

import java.util.List;

/**
 * 认证服务接口
 *
 * @author haoxr
 * @since 2.4.0
 */
public interface AuthService extends IService<CarAuth> {

    /**
     * 登录
     *
     * @param username 用户名
     * @param password 密码
     * @return 登录结果
     */
    LoginResult login(String username, String password);

    /**
     * 登出
     */
    void logout();

    /**
     * 获取验证码
     *
     * @return 验证码
     */
    CaptchaResult getCaptcha();

    IPage<CarAuthPageVO> getAuthPage(CarAuthPageQuery queryParams);

    boolean updateAuth(Integer authId, AuthForm authForm);

    boolean deleteAuth(String ids);

    List<CarAuthExportVO> listExportAuths(CarAuthPageQuery queryParams);

    boolean saveAuthImport(CarAuthImportVO carAdImportVO);
}
